package com.xbongbong.pro.customerstatement.pojo;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.pro.statistic.through.pojo.TableDataInfoPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;

/**
 * @author zcp
 * @version v1.0
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class StatementTableDataPojo implements Serializable {
    private static final long serialVersionUID = 4775844013946355811L;

    /**
     * 对账日期
     */
    private TableDataInfoPojo checkingDate;
    /**
     * 类型
     */
    private TableDataInfoPojo businessType;
    /**
     * 对账单据
     */
    private TableDataInfoPojo statementId;
    /**
     * 关联客户
     */
    private TableDataInfoPojo customerId;
    /**
     * 关联合同
     */
    private TableDataInfoPojo contractId;
    /**
     * 来源单据
     */
    private TableDataInfoPojo sourceId;
    /**
     * 关联产品,二维数组
     */
    private JSONObject array_1;

    /**
     * 数据id
     */
    private Long dataId;
    /**
     * 表单id
     */
    private Long formId;
    /**
     * 其它费用
     */
    private TableDataInfoPojo otherExpense;
    /**
     * 应收金额
     */
    private TableDataInfoPojo amountReceivable;
    /**
     * 回款金额
     */
    private TableDataInfoPojo amountReceived;
    /**
     * 核销金额
     */
    private TableDataInfoPojo writeOffAmount;
    /**
     * 应收余额
     */
    private TableDataInfoPojo balanceReceivable;

    /**
     * 应收款：回款类型
     */
    private TableDataInfoPojo paymentType;

    public StatementTableDataPojo() {
    }

    /**
     * 主要是期初只显示日期、type和应收余额
     * @param checkingDate
     * @param businessType
     * @param balanceReceivable
     * @author zcp
     * @since v1.0
     * @version v1.0
     */
    public StatementTableDataPojo(TableDataInfoPojo checkingDate, TableDataInfoPojo businessType, TableDataInfoPojo balanceReceivable) {
        this.checkingDate = checkingDate;
        this.businessType = businessType;
        this.balanceReceivable = balanceReceivable;
    }
}
